Skip to content

dispatch: fix logging to a file on Windows #441

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Feb 5, 2019
Merged

dispatch: fix logging to a file on Windows #441

merged 1 commit into from
Feb 5, 2019

Conversation

adierking
Copy link
Contributor

Port the dispatch_debug test to Windows and fix a bug that it found related to
logfile initialization.

_dispatch_logv_init()'s Windows implementation uses _fdopen() and fprintf() to
write the log header. However, this gives ownership of the file to stdio, so
fclose() closes the descriptor and causes future writes to trigger CRT assertion
failures. Avoid this by using snprintf() and _write() instead.

@adierking
Copy link
Contributor Author

@ktopley-apple
Copy link
Contributor

@swift-ci please test

Port the dispatch_debug test to Windows and fix a bug that it found related to
logfile initialization.

_dispatch_logv_init()'s Windows implementation uses _fdopen() and fprintf() to
write the log header. However, this gives ownership of the file to stdio, so
fclose() closes the descriptor and causes future writes to trigger CRT assertion
failures. Avoid this by using snprintf() and _write() instead.
@ktopley-apple
Copy link
Contributor

@swift-ci please test

@ktopley-apple ktopley-apple merged commit 81c9bf6 into swiftlang:master Feb 5, 2019
@adierking adierking deleted the winlog branch February 8, 2019 01:26
rokhinip pushed a commit that referenced this pull request Nov 5, 2021
dispatch: fix logging to a file on Windows
Signed-off-by: Kim Topley <ktopley@apple.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants